#include "display.h"

/*此页面窗口*/
static lv_obj_t * appWindow;

static lv_anim_timeline_t * anim_timeline;

#define COLOR_ORANGE    lv_color_hex(0xff931e)
#define VERSION_FIRMWARE_NAME   "X-TRACK"

static void a2_ready_cb(lv_anim_t* a2)
{
    lv_anim_del(a2->var, NULL);
    page_push(PAGE_Home);
    
}

#if 1
// 定义适配函数
static void set_img_opa_anim(void * obj, int32_t v) {
    lv_obj_set_style_img_opa((lv_obj_t*)obj, (lv_opa_t)v, LV_PART_MAIN);
}
#endif
/**
  * @brief  页面初始化事件
  * @param  无
  * @retval 无
  */
static void Setup()
{

    lv_anim_t anim_temp;
    // /*将此页面移到前台*/
    lv_obj_move_foreground(appWindow);
#if 1
    // ImgBg_Create();
    // lv_obj_remove_style_all(appWindow); // 清除所有效果
    // 创建线条
    lv_obj_t* line = lv_obj_create(appWindow); 
    lv_obj_clear_flag(line, LV_OBJ_FLAG_SCROLLABLE);
    lv_obj_set_style_bg_color(line, lv_color_black(), LV_PART_MAIN);
    lv_obj_set_size(line, 110, 50);
    lv_obj_set_style_border_color(line, COLOR_ORANGE, 0);
    lv_obj_set_style_border_side(line, LV_BORDER_SIDE_BOTTOM, 0);
    lv_obj_set_style_border_width(line, 3, 0);
    lv_obj_set_style_border_post(line, true, 0);
    lv_obj_center(line);

    // 开机logo
    lv_obj_t* label = lv_label_create(line);
    lv_obj_set_style_text_font(label,&font_agencyb_36,0);
    lv_obj_set_style_text_color(label, lv_color_white(), 0);
    lv_label_set_text(label, VERSION_FIRMWARE_NAME);
    lv_obj_center(label);

    anim_timeline = lv_anim_timeline_create();

    // 线条动画
    lv_anim_init(&anim_temp);
    lv_anim_set_var(&anim_temp, line);
    lv_anim_set_values(&anim_temp, 0, lv_obj_get_style_width(line, 0));
    lv_anim_set_exec_cb(&anim_temp, (lv_anim_exec_xcb_t)lv_obj_set_width);
    lv_anim_set_time(&anim_temp, 500);
    lv_anim_set_path_cb(&anim_temp, lv_anim_path_ease_out);
    lv_anim_set_early_apply(&anim_temp, true);

    lv_anim_timeline_add(anim_timeline, 0, &anim_temp);

    // logo动画
    lv_anim_init(&anim_temp);
    lv_anim_set_var(&anim_temp, label);
    lv_anim_set_values(&anim_temp, lv_obj_get_style_height(line, 0), lv_obj_get_y(label));
    lv_anim_set_exec_cb(&anim_temp, (lv_anim_exec_xcb_t)lv_obj_set_y);
    lv_anim_set_time(&anim_temp, 500);
    lv_anim_set_path_cb(&anim_temp, lv_anim_path_ease_out);
    lv_anim_set_ready_cb(&anim_temp, a2_ready_cb); // 完成回调
    lv_anim_set_early_apply(&anim_temp, true);

    lv_anim_timeline_add(anim_timeline, 500, &anim_temp);

    lv_anim_timeline_start(anim_timeline);
#endif

#if 0
  LV_IMG_DECLARE(image_ys);
  lv_obj_set_style_bg_color(appWindow, lv_color_white(), LV_PART_MAIN); // 设置背景白
  lv_obj_set_style_bg_opa(appWindow, LV_OPA_COVER, LV_PART_MAIN); // 不透明度100%

  lv_obj_t * imageys = lv_img_create(appWindow); 
  lv_img_set_src(imageys, &image_ys);
  lv_obj_set_align(imageys,LV_ALIGN_CENTER);
  // 设置初始透明度为0（完全透明）
  lv_obj_set_style_img_opa(imageys, 0, 0);
  // 创建透明度动画
  lv_anim_init(&anim_temp);
  lv_anim_set_var(&anim_temp, imageys);
  lv_anim_set_values(&anim_temp, 0, 255); // 透明度0→255
  lv_anim_set_time(&anim_temp, 1000);     // 动画时长1秒
  lv_anim_set_exec_cb(&anim_temp, (lv_anim_exec_xcb_t)set_img_opa_anim); // 回调函数
  lv_anim_set_path_cb(&anim_temp, lv_anim_path_ease_out); // 缓动效果
  lv_anim_set_ready_cb(&anim_temp, a2_ready_cb); // 完成回调
  lv_anim_start(&anim_temp);
#endif

}

/**
  * @brief  页面退出事件
  * @param  无
  * @retval 无
  */
static void Exit()
{
    lv_obj_clean(appWindow);
}

/**
  * @brief  页面事件
  * @param  btn:发出事件的按键
  * @param  event:事件编号
  * @retval 无
  */
static void Event(void* btn, int event)
{

}

/**
  * @brief  页面注册
  * @param  pageID:为此页面分配的ID号
  * @retval 无
  */
void page_register_Startup(uint8_t pageID)
{
    // /*获取分配给此页面的窗口*/
    appWindow = AppWindow_GetCont(pageID);
    
    /*注册至页面调度器*/
    page_register(pageID, Setup, NULL, Exit, Event);
}

